import { CallHandler, ExecutionContext, Injectable, NestInterceptor } from "@nestjs/common";
import { Observable, map } from "rxjs";

// 注入NestInterceptor
@Injectable()
export class TransformInterceptor implements NestInterceptor {
	// 实现intercept方法
	intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
		// 调用next.handle()方法，获取返回的Observable
		return next.handle().pipe(
			// 使用map操作符，对返回的数据进行处理
			map((data) => {
				// 返回一个新的对象，包含data、code和message属性
				return {
					data,
					code: 200,
					message: "请求成功"
				};
			})
		);
	}
}
